//
//  HMMainTabBarController.swift
//  HMWeibo12
//
//  Created by 陈伯共 on 16/9/17.
//  Copyright © 2016年 陈伯共. All rights reserved.
//

import UIKit

class HMMainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 图片和文字颜色一样的时候可以调用
//       tabBar.tintColor = UIColor.orange
        
        // 替换系统的tabar，使用自定义的tabbar
        let newTabbar = HMMainTabar()
        
        // 1.定义闭包
        let composeCallback = { () -> Void in
            print("我在控制器知道了加号按钮的点击了")
            
        }
        // 2.传递闭包
        newTabbar.composeCallback = composeCallback
        // get-only的属性,只读属性. 不能使用 = 赋值, 可以使用KVC (键值编码),间接给属性赋值
        // value 要设置的值
        // key：对象属性的值
        self.setValue(newTabbar, forKey: "tabBar")
        
        // 首页
        self.addChildViewController(controller: HMHomeViewController(), title: "首页", imageName: "tabbar_home")
        // 消息
        self.addChildViewController(controller: HMMessageViewController(), title: "消息", imageName:"tabbar_message_center")
        // 发现
        self.addChildViewController(controller: HMDiscoverViewController(), title: "发现", imageName:"tabbar_discover")
        // 我
        self.addChildViewController(controller: HMProfileViewController(), title: "我", imageName:"tabbar_profile")
    }
    
    
    /// get TabbarController添加子控制器，会包装导航控制器
    ///
    /// - parameter controller:  控制器
    /// - parameter title:       标题
    /// - parameter imageName:   tabbarItem图片的名称
    private func addChildViewController(controller: UIViewController, title: String, imageName: String) {
        // 即会出现在导航栏，也会出现在tabbarItem上面
        controller.title = title
        controller.tabBarItem.image = UIImage(named: imageName)
        
        // 选中图片，不需要系统的渲染
        controller.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
        
        // 修改tabbarItem的颜色
        
        controller.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.orange], for: UIControlState.selected)
        
        self.addChildViewController(UINavigationController(rootViewController: controller))
    }


}
